Color OLED module library  v0.5
Library for the WaveShare 0.96-inch color OLED (SSD1331) module
ssd1331_drawPixel.c
1 /*
2  * @file ssd1331_drawPixel.c
3  *
4  * @author Matthew Matz
5  *
6  * @version 0.9
7  *
8  * @copyright Copyright (C) Parallax, Inc. 2019. See end of file for
9  * terms of use (MIT License).
10  *
11  * @brief 0.96-inch RGB OLED display bitmap driver, see ssd1331_h. for documentation.
12  *
13  * @detail Please submit bug reports, suggestions, and improvements to
14  * this code to editor@parallax.com.
15  */
16 
17 
18 #include "ssd1331.h"
19 
20 
21 void ssd1331_drawPixel(screen_t* dev, int x, int y, int color) {
22  int mask_cs = (1 << dev->dev_id);
23  int mask_sdi = (1 << dev->sdi_pin);
24  int mask_clk = (1 << dev->clk_pin);
25  int mask_dc = (1 << dev->dc_pin);
26 
27  ssd1331_writeLockSet(dev->dev_id);
28 
29  ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, SSD1331_CMD_SETCOLUMN, 0);
30  ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, x, 0);
31  ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, x, 0);
32 
33  ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, SSD1331_CMD_SETROW, 0);
34  ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, y, 0);
35  ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, y, 0);
36 
37  ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, (color >> 8), 1);
38  ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, color & 0xff, 1);
39 
40  ssd1331_writeLockClear(dev->dev_id);
41 }
42 
43